#include "net.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include "gobang.h"
//定义网络端口号
static short port=6666;

//定义网络ip地址
char* ip;

//定义socket对象
static int sockfd;

// 红方网络初始化
void red_init(void)
{
	//创建一个socket对象
	int confd=socket(AF_INET,SOCK_STREAM,0);
	
	struct sockaddr_in addr;
	addr.sin_family =AF_INET;
	addr.sin_port =htons(port);
	addr.sin_addr.s_addr= inet_addr("127.0.0.1");
	
	//绑定
	int ret =bind(confd,(struct sockaddr*)&addr,sizeof(addr));
	if(ret<0)
	{
		printf("blind 错误\n");
		
	}
	//设置监听数
	listen(confd,5);
	

	//等待连接
	struct sockaddr_in conaddr={};
	socklen_t len=sizeof(conaddr);
	sockfd=accept(confd,(struct sockaddr*)&conaddr,&len);
	if(sockfd>0)
	{
		printf("连接成功。。\n");
	}
	
}

// 蓝方网络初始化
void blue_init(void)
{
	
	//创建一个socket对象
	sockfd=socket(AF_INET,SOCK_STREAM,0);
	
	struct sockaddr_in addr;
	addr.sin_family =AF_INET;
	addr.sin_port =htons(port);
	addr.sin_addr.s_addr= inet_addr(ip);
	

	int ret =connect(sockfd,(struct sockaddr*)&addr,sizeof(addr));
	if(ret<0)
	{
		printf("connect 错误\n");
	}
}

// 接收棋子坐标
void recv_key(void)
{
	char buf[2]={};
	recv(sockfd,&buf,sizeof(buf),0);
	cur_x=buf[0];
	cur_y=buf[1];
	
}

// 发送棋子坐标
void send_key(void)
{
	char buf[2]={};
	buf[0]=cur_x;
	buf[1]=cur_y;
	send (sockfd,&buf,sizeof(buf),0);
}
